1. Field of the Invention
The present invention relates to grid computing systems and more particularly pertains to a system for assigning and monitoring grid jobs on a computing grid.
2. Description of the Prior Art
Grid computing, which is sometimes referred to as distributed processing computing, has been proposed and explored as a means for bringing together a large number of computers of wide ranging locations and often disparate types for the purpose of utilizing idle computer processor time and/or unused storage by those needing processing or storage beyond their capabilities. While the development of public networks such as the Internet has facilitated communication between a wide range of computers all over the world, grid computing aims to facilitate not only communication between computers by also to coordinate processing by the computers in a useful manner. Typically, jobs are submitted to a managing entity of the grid system, and the job is executed by one or more of the grid computers making up the computing grid.
However, while the concept of grid computing holds great promise, the execution of the concept has not been without its challenges. One challenge associated with grid computing is matching grid jobs to the most appropriate grid computers on the computing grid and then tracking the progress of those grid jobs. Another challenge is tracking the many grid jobs that may simultaneously be running on various grid computers of the computing grid.
Grid jobs submitted to the computing grid may or may not have special requirements for the grid computers that perform the job. If there are special requirements, the grid manager must be informed of those requirements and then must sift through the profiles of the available grid computers to determine if that are any computers that meet the requirements, and if so, which of those computers meet the requirements. This can be time consuming, especially if there are a relatively large number of jobs that have special requirements, and thus can slow down the handling of the job before it even reaches a grid computer to perform the job.
Further, due to the desire to make the performance of the various grid operations on a grid computer as unobtrusive as possible to the primary user and primary functions of the grid computer, there may be a significant period of time before a grid job is begun, or an interruption that lasts for a significant period of time, and thus predicting the time when the grid job will be completed is difficult. The grid manager or grid job scheduler may query the grid computer as to the status of the grid job, but this may make grid operations on the grid computer more obtrusive and increase the traffic on the linking network. Further, if the network connection of the grid computer is intermittent, the grid manager may not be able to adequately time the queries to the periods when the network connection is present, and this may lead to a lack of response by the grid computer that confuses the grid manager as to the job status.
In view of the foregoing, it is believed that there is a significant need for a system that effectively matches the needs of the grid job requests to the abilities of the grid computers, and then effectively monitors the progress of the performance of the grid job.